Interactive build plate

ABSTRACT

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for tracking object movement within a three-dimensional workspace. A method includes receiving, by a controller, break beam sensor data indicating object detection by a break beam sensor of a plurality of break beam sensors configured to detect objects within the workspace. The method includes receiving plate sensor data indicating object detection by a plate sensor of a plurality of plate sensors configured to detect objects resting on a surface of a plate defining a floor of the workspace. The method includes determining that an object passed through the workspace to rest at a position on the surface; comparing the position of the object to a target position of the object; and in response to determining that the position of the object does not satisfy similarity criteria for matching the target position, performing one or more actions.

TECHNICAL FIELD

The present invention relates to the field of building systems. Moreparticularly, the invention relates to releasably interconnectingbuilding elements and workspaces.

BACKGROUND

Certain toy pieces in the form of toy bricks have releasable couplingsbetween bricks, which allow them to be connected to form a largerstructure. In their simplest form they build inanimate objects such ascastles or houses. In some cases, the toy created using toy bricks canbe supported on a baseplate, which can include coupling elements toprovide stability or proper positioning, or both.

SUMMARY

In general, this disclosure relates to an interactive build plate systemfor tracking movement of objects within a three-dimensional workspace.The build plate system can be used to track movement and time ofinteraction with objects, e.g., modular building blocks. The workspacehas a floor defined by a surface of a plate. The plate includes platesensors for detecting objects resting on the plate. Break beam sensorsare arranged to detect objects passing through the workspace. The platesensors and break beam sensors output sensor data to a controller.

In some examples, the plate surface is configured to be used withreleasably coupleable toy pieces, such as toy building blocks. The platesurface can include toy piece coupling elements. A user may reach intothe workspace in order to place a toy piece on the plate surface. Thebreak beam sensors can be arranged in an array. A break beam sensorincludes an electromagnetic emitter and an electromagnetic receiver. Insome examples, emitters, receivers, or both are supported by structuresthat are attached to the plate and extend non-parallel to the platesurface. The structures can be attached to the edges of the plate. Thebreak beam sensors can detect the presence of the user's hand and/or ofthe toy piece passing through the workspace. Break beam sensor data canbe output to a controller. The break beam sensor data can include dataindicating, for a particular break beam sensor that detects an object,an array address of the break beam sensor, a start time of objectdetection by the break beam sensor, and/or a duration of detection bythe particular break beam sensor.

The plate sensors can be integrated with the plate, positioned below theplate, or positioned on the plate surface. The plate sensors caninclude, for example, pressure sensors, contact sensors, or proximitysensors. Each plate sensor can be configured to detect objects restingon the plate surface within a proper subset of the area of the platesurface. When a toy piece is placed on the plate surface, the platesensors can detect the presence of the toy piece on the plate surface.Plate sensor data can be output to the controller. The plate sensor datacan include data indicating, for a particular plate sensor that detectsan object, a location of the plate sensor, a start time of objectdetection by the plate sensor, a duration of object detection by theplate sensor, a weight of the object, etc.

In some examples, the controller can determine, based on the platesensor data, that more than one object is located at a particularlocation, e.g., due to being stacked. In some examples, two or moreplate sensors can detect objects resting on the plate surface. Thecontroller can determine, based on the plate sensor data from the two ormore plate sensors, a size of the object and/or a number of objectsresting on the plate surface.

Using the break beam sensor data and the plate sensor data, thecontroller can track object paths within the workspace and placement ofobjects on the plate surface. For example, the controller can trackmotion of a user's hand placing a first toy piece on a first location ofthe plate surface, removing a second toy piece from a second location ofthe plate surface, and placing the second toy piece on a second locationof the plate surface. The controller can determine a time duration ofeach action and a path of movement for each action.

In some examples, the controller can perform actions based on thetracked object motion. For example, the controller may determine thatthe user requires assistance, and perform a feedback action to assistthe user. The controller can determine that the user requiresassistance, e.g., based on determining that a placement of an objectdiffers from an expected placement of the object, based on the user'shand moving slowly within the workspace, based on the user's hand beingwithin the workspace for longer than an expected time duration, based onthe user moving a toy piece repeatedly between locations of the platesurface, etc. To assist the user, the controller can perform a feedbackaction such as illuminating a warning light, generating an alert sound,outputting audible instructions, outputting visual instructions,energizing a laser pointer, etc.

In some examples, the controller can generate a visualization of objectpaths and placement within the workspace. The visualization can include,for example, a heat map showing the path of an object through theworkspace and the placement location of the object on the plate surfaceduring a user session. The heat map can be presented on a display innear-real time, can be stored for later viewing by a user, or both. Insome examples, the controller can generate an aggregated visualizationof objects paths and placement within the workspace. The aggregatedvisualization can represent multiple user sessions by the same user, ormultiple user sessions by multiple users.

Understanding how people interact with toys and other objects canprovide information about the person's development, engagement with thetoy, and ability to follow instructions. Sets of modular building blockscan be used to track these parameters. An interactive build plate canuse break beam sensors, e.g., including LEDs and photodiodes, to detectuser motion and time of interaction. The interactive build plate canrecord how many times, where, and for how long optical sensor sets havetheir optical paths broken. The interactive build plate can beconfigured such that, when in use, block sets or models are built on topof the build plate. Each block can pass over the build plate when beingput into place on the plate.

Actions performed by a user can be compared with building plans. Basedon the actions of the user compared with the building plans, the buildplate system can perform actions. Actions can include providing feedbackby activating guidance signals to guide the user. Actions can includegenerating a visualization of object movement. Actions can includecomparing average user performance to expected performance specified bythe building plans. Based on determining that average user performancedoes not satisfy performance criteria for a particular building plan,instructions for the building plan can be adjusted. For example, alower-than-expected performance for a construction project by multipleusers can indicate that the instructions for the construction projectare not accurate and/or are not adequately specific.

In general, one innovative aspect of the subject matter described inthis specification can be embodied in a system including a plate havinga surface defining a floor of a three-dimensional workspace. The plateincludes toy piece coupling elements and is configured to be used withreleasably coupleable toy pieces. The system includes a plurality ofplate sensors configured to detect objects resting on the surface of theplate; a plurality of break beam sensors configured to detect objectswithin the workspace; and a controller. The controller is configured toperform operations including: receiving break beam sensor dataindicating object detection by at least one break beam sensor of theplurality of break beam sensors, receiving plate sensor data indicatingobject detection by at least one plate sensor of the plurality of platesensors; and determining, based on the break beam sensor data and theplate sensor data, that a toy piece passed through the workspace to reston the surface.

These and other embodiments may each optionally include one or more ofthe following features. In some implementations, the system includes aplurality of support structures, each support structure extending froman edge of the plate in a non-parallel direction to a plane of thesurface. Each break beam sensor includes: an emitter configured to emitelectromagnetic radiation; and a receiver configured to receiveelectromagnetic radiation emitted by the emitter. Emitters and receiversof the plurality of break beam sensors are supported by the plurality ofsupport structures.

In some implementations, each break beam sensor of the plurality ofbreak beam sensors includes: an emitter supported by a first supportstructure coupled to the plate; and a receiver supported by a secondsupport structure coupled to the plate. Electromagnetic energy travelingfrom the emitter to the receiver passes through the workspace.

In some implementations, the plurality of break beam sensors arearranged in an array, the break beam sensor data including dataindicating an array address of the at least one break beam sensor.

In some implementations, receiving break beam sensor data indicatingobject detection by at least one break beam sensor of the plurality ofbreak beam sensors includes: receiving break beam sensor data indicatingsimultaneous object detection by two or more break beam sensors at afirst time, the break beam sensor data including data indicating anarray address of the two or more break beam sensors; and based on thebreak beam sensor data, determining a three-dimensional coordinatelocation of the toy piece within the three-dimensional workspace at thefirst time.

In some implementations, the break beam sensor data includes dataindicating a time of object detection.

In some implementations, the break beam sensor data includes dataindicating a sequence of detections, the operations includingdetermining, based on the break beam sensor data, a path traveledthrough the workspace by the toy piece.

In some implementations, each plate sensor of the plurality of platesensors is configured to detect objects resting on the surface within arespective proper subset of an area of the surface, the operationsincluding: determining, based on the plate sensor data, a location ofthe toy piece on the surface, the location including a particular propersubset of the area of the surface.

In some implementations, the operations include comparing a position ofthe toy piece on the surface to a target position of the toy piece onthe surface; and in response to determining that the position of the toypiece does not satisfy similarity criteria for matching the targetposition, performing one or more actions.

In some implementations, the one or more actions include at least oneof: activating a visual alarm; activating an audible alarm; outputtingvisual instructions; or outputting audible instructions.

In some implementations, the plurality of plate sensors are integratedwith the plate and arranged in an array.

In some implementations, the operations include determining, using thebreak beam sensor data and the plate sensor data, at least one of a sizeof the toy piece or a shape of the toy piece.

In some implementations, the operations include: generating avisualization showing: a path of the toy piece through the workspace;and a placement of the toy piece on the surface; and providing thevisualization for presentation on a display.

In some implementations, the plurality of break beam sensors includes aplurality of infrared break beam sensors.

In some implementations, the plurality of plate sensors includes aplurality of weight sensors, proximity sensors, or contact sensors.

In general, one innovative aspect of the subject matter described inthis specification can be embodied in a method for tracking objectmovement within a three-dimensional workspace. The method includesreceiving, by a controller, break beam sensor data indicating objectdetection by at least one break beam sensor of a plurality of break beamsensors. The plurality of break beam sensors is configured to detectobjects within the workspace. The method includes receiving, by thecontroller, plate sensor data indicating object detection by at leastone plate sensor of a plurality of plate sensors. The plurality of platesensors is configured to detect objects resting on a surface of a platethat defines a floor of the workspace. The method includes determining,by the controller and based on the break beam sensor data and the platesensor data, that an object passed through the workspace to rest at aposition on the surface; comparing, by the controller, the position ofthe object on the surface to a target position of the object on thesurface; and in response to determining that the position of the objectdoes not satisfy similarity criteria for matching the target position,performing, by the controller, one or more actions.

These and other embodiments may each optionally include one or more ofthe following features. In some implementations, the one or more actionsinclude at least one of: activating a visual alarm; activating anaudible alarm; outputting visual instructions; or outputting audibleinstructions.

In some implementations, the method includes obtaining data indicating aplan for a construction to be built on the plate; and determining thetarget position of the object on the surface using the obtained data.

In some implementations, the plate includes toy piece coupling elementsand is configured to be used with releasably coupleable toy pieces.

Other embodiments of these aspects include corresponding computersystems, apparatus, computer program products, and computer programsrecorded on one or more computer storage devices, each configured toperform the actions of the methods. A system of one or more computerscan be configured to perform particular operations or actions by virtueof having software, firmware, hardware, or a combination of theminstalled on the system that in operation causes or cause the system toperform the actions. One or more computer programs can be configured toperform particular operations or actions by virtue of includinginstructions that, when executed by data processing apparatus, cause theapparatus to perform the actions.

The details of one or more implementations of the subject matterdescribed in this specification are set forth in the accompanyingdrawings and the description below. Other features, aspects, andadvantages of the subject matter will become apparent from thedescription, the drawings, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B illustrate an example interactive build plate system.

FIG. 2 is a block diagram of the example interactive build plate system.

FIGS. 3A and 3B illustrate tracking of an object by the exampleinteractive build plate system.

FIGS. 4A and 4B illustrate tracking of multiple objects by the exampleinteractive build plate system.

FIG. 5 is a flow diagram of an example process for tracking objectmovement within a three-dimensional workspace.

FIG. 6 shows an example of a computing device and a mobile computingdevice that can be used to implement the techniques described herein.

Like reference numbers and designations in the various drawings indicatelike elements.

DETAILED DESCRIPTION

FIGS. 1A and 1B illustrate an example interactive build plate system 100for tracking movement of objects within a three-dimensional workspace108. The workspace 108 has a floor defined by a surface 112 of a plate104. The surface 112 extends in a horizontal plane, e.g., in the x-yplane. Sides of the workspace 108 can be defined by side edges 124 a,124 b (“edges 124”) of the plate 104. For example, a plane extendingvertically in the z-direction from the edges 124 of the plate 104 candefine the sides of the workspace 108.

The plate 104 includes plate sensors 106 for detecting objects restingon the plate. In some examples, the surface 112 is configured to be usedwith releasably coupleable toy pieces, such as block 110. In someexamples, the block 110 is a toy building block. The surface 112 caninclude toy piece coupling elements 114. The coupling elements 114 canprovide stability or proper positioning when the block 110 is placed onthe surface 112. A user may reach into the workspace in order to placethe block 110 on the surface 112 and couple the block 110 to thecoupling elements 114.

Break beam sensors are arranged to detect objects passing through theworkspace 108. A break beam sensor includes an electromagnetic emitter120 and an electromagnetic receiver 122. The plate sensors 106 and breakbeam sensors can output sensor data to a controller. The plate sensors106 can be integrated with the plate 104, positioned below the plate104, or positioned on the surface 112.

The build plate system 100 can have any appropriate size. In someexamples, the plate 104 can have an area of thirty square centimeters orgreater (e.g., forty square centimeters or greater, fifty squarecentimeters or greater, sixty square centimeters or greater). In someexamples, the plate 104 can have an area of five hundred squarecentimeters or less (e.g., four hundred square centimeters or less,three hundred square centimeters or less, two hundred centimeters orless).

The plate 104 can have any appropriate shape. In some examples, theplate 104 has a polygonal shape in the x-y plane. For example, the plate104 can have a triangular, rectangular, square, pentagonal, or hexagonalshape in the x-y plane. In some examples, the plate 104 has anon-polygonal shape in the x-y plane. For example, the plate 104 canhave an elliptical, oval, or circular shape in the x-y plane.

The build plate system 100 includes structures 102 a, 102 b (“structures102”). In some examples, emitters, receivers, or both are supported bythe structures 102. In the example of FIG. 1A, the emitter 120 issupported by the structure 102 a and the receiver 122 is supported bythe structure 102 b. In some examples, electromagnetic energy travelsfrom the emitter 120 to the receiver 122 in a diagonal direction, e.g.,a direction non-parallel to the x-y plane of the surface 112. In someexamples, electromagnetic energy travels from an emitter to a receiverin a direction parallel to the x-y plane of the surface 112.

The structures 102 are coupled to the plate 104. The structures 102extend non-parallel to the surface 112. For example, an inner surface105 a, 105 b of each structure 102 can be perpendicular to the surface112. In some examples, the structures 102 are attached to the edges 124of the plate 104. In some examples, each structure 102 is attached to arespective edge 124 of the plate 104. In some examples, the structures102 are attached to opposing edges of the plate 104, e.g., such that theinner surface 105 a faces the inner surface 105 b across the plate 104.

Although shown as having two structures, the build plate system 100 caninclude any number of structures. For example, the build plate system100 can include three structures, four structures, or five or morestructures. The structures 102 can be positioned in an arrangement thatdoes not impede access to the workspace 108. For example, the number,size, shape, and positioning of the structures 102 can be such that auser can reach into the workspace 108 between the structures 102. Aceiling of the workspace 108 can be defined by top edges 103 a, 103 b ofthe structures 102 a, 102 b. For example, a plane extending from the topedge 103 a of the structure 102 a to the top edge 103 b of the structure102 b can define the ceiling of the workspace 108.

In some examples, the structures 102 can be coupled to the plate 104 atcorners of the plate. For example, the plate 104 can have a rectangularshape in the x-y plane. A structure 102 can be coupled to the plate 104at each of the four corners of the plate 104.

FIG. 1B illustrates a perspective view of the example build plate system100. The build plate system 100 can track the block 110 as a user's hand140 enters the workspace 108 while holding the block. The build platesystem 100 can track the block 110 as the user's hand 140 places theblock 110 on the surface 112. The build plate system 100 can determine alocation and positioning of the block 110 on the surface 112.

The break beam sensors of the build plate system 100 can be arranged inan array and supported by structure 102 a, 102 b. Each break beam sensorincludes an emitter, e.g., emitter 130, and a receiver, e.g., receiver132. The break beam sensors can detect the presence and movement ofobjects within the workspace 108, e.g., block 110 being carried by auser's hand 140. The break beam sensors can detect and track movement ofthe user's hand 140 passing through the workspace 108.

In the example of FIG. 1B, emitters are represented by white circles,and receivers are represented by black circles. In some examples, anemitter and corresponding receiver of a break beam sensor can bepositioned across from each other and supported by opposing structures102. In some examples, the direction of travel between an emitter and areceiver is parallel to the x-y plane and parallel to the x-z plane,e.g., path 152. In some examples, the direction of travel between anemitter and a receiver is parallel to the x-y plane and non-parallel tothe x-z plane, e.g., path 154. In some examples, the direction of travelbetween an emitter and a receiver is non-parallel to the x-y plane andparallel to the x-z plane, e.g., path 156. In some examples, thedirection of travel between an emitter and a receiver is non-parallel tothe x-y plane and non-parallel to the x-z plane, e.g., path 158.

Each structure 102 supports an array of emitters, receivers, or both. Inthe example of FIG. 1B, the structure 102 a supports an array 160 aincluding both emitters and receivers. The structure 102 b also supportsan array 160 b including both emitters and receivers. In some examples,each structure 102 supports an array of only emitters or only receivers.

FIG. 2 shows a block diagram of the example build plate system 100. Thebuild plate system 100 includes break beam sensors 204 and plate sensors106. The build plate system 100 optionally includes a camera 206. Thebuild plate system 100 includes a controller 210. The controller 210includes a movement tracker 212 and a placement tracker 214. The buildplate system 100 includes a memory 220. The build plate system 100optionally includes a visualization generator 222 and a signal device224.

The break beam sensors 204 output break beam sensor data 234 to thecontroller 210. The break beam sensor data 234 can include dataindicating, for a particular break beam sensor that detects the block110, an array address of the break beam sensor, a start time of objectdetection by the break beam sensor, a duration of detection by theparticular break beam sensor, or any combination of these. The arrayaddress of a break beam sensor can be, for example, a coordinateposition of the emitter in the respective array, a coordinate positionof the receiver in the respective array, or both.

In some examples, the break beam sensors 204 include infrared emittersand receivers. An example infrared emitter includes an infrared LED. Theinfrared LED can have a diameter of approximately 3.0 millimeters (mm)(e.g., 2.0 mm or greater, 2.5 mm or greater, 3.5 mm or greater).Infrared break-beam sensors can be used to detect object presence andobject motion. An infrared emitter sends out a beam of human-invisibleinfrared light. A receiver, such as a photodiode, that is sensitive tothe infrared light is positioned across the workspace from the emitter.When the block 110 passes between the emitter and the receiver, and theobject is not transparent to infrared, the beam is broken and thereceiver detects the interruption. An array of break beam sensors can beused to detect and localize objects. The array of break beam sensors canbe used to detect motion of objects, to determine speed of objectmotion, and to determine two-dimensional and three-dimensional directionof object motion.

The build plate system 100 includes one or more plate sensors 106. Aplate sensor 106 is a sensor that detects the presence of the block 110on the plate 104. The plate sensor 106 can output data indicating asize, shape, location, weight, or any combination of these to thecontroller 210. The plate sensors 106 can include, for example, pressuresensors, weight sensors, proximity sensors, load cells, contact sensors,capacitive sensors, or any combination of these.

Each plate sensor can be configured to detect objects resting on theplate surface within a proper subset of the area of the plate surface.When a toy piece, e.g., block 110, is placed on the surface 112, theplate sensors 106 can detect the presence of the toy piece on thesurface 112. Plate sensor data 236 can be output to the controller 210.Plate sensor data 236 output by a particular plate sensor can includedata indicating a location of the plate sensor that detected the object,a size of the object, a shape of the object, an orientation of theobject, a start time of object detection by the plate sensor, a durationof object detection by the plate sensor, a weight of the object, or anycombination of these.

The plate sensors 106 can be arranged in an array. The build platesystem 100 can include any appropriate number of plate sensors 106. Theresolution of the build plate system 100 can depend on the number ofplate sensors. For example, a greater number of plate sensors 106results in a higher resolution, while a lesser number of plate sensors106 results in a lower resolution. A build plate system having a higherresolution can determine more precise locations and sizes of objectsresting on the plate 104, compared to a build plate system having alower resolution.

The controller 210 includes a movement tracker 212 and a placementtracker 214. Using the break beam sensor data 234 from the break beamsensors 204, the movement tracker 212 can track object paths within theworkspace 108. For break beam sensor data 234 generated at a particulartime, the movement tracker 212 can determine a coordinate location ofthe block 110 within the workspace 108 at the particular time. Thecoordinate location can be a three-dimensional coordinate locationwithin the workspace 108 where the block 110 is detected. In someexamples, the coordinate location can be a location of an estimatedcenter of the block 110 at the particular time.

In some examples, the movement tracker 212 can determine a size of theblock 110 based on a number of break beam sensors 204 that aresimultaneously interrupted at a given time. In some examples, themovement tracker 212 can determine a shape of the block 110, a locationof an estimated center of the block 110, or both, using the break beamsensor data 234. The movement tracker 212 can determine the shape of theblock 110 and/or the location of the center of the block 110 based onthe number of break beam sensors 204 that are simultaneously interruptedat a given time, the array addresses of the break beam sensors 204 thatare simultaneously interrupted at the given time, or both.

The movement tracker 212 can determine a path of the block 110 movingthrough the workspace 108. The path can include a trajectory of theblock 110, a speed of the block 110, a time of travel of the block 110,or any combination of these. In some examples, the trajectory of theblock 110 includes a series of coordinate locations of the block 110 inthe workspace 108, with each coordinate location being associated with atime of detection.

Using the plate sensor data 236 from the plate sensors 106, theplacement tracker 214 can track placement of objects on the surface 112.For plate sensor data 236 generated at a particular time, the placementtracker 214 can determine a coordinate location of the block on theplate 104. The coordinate location can be a two-dimensional coordinatelocation on the plate 104 where the block 110 is detected. In someexamples, the coordinate location can be a location of an estimatedcenter of the block 110 at the particular time.

In some examples, the placement tracker 214 can determine a size of theblock 110 based on a number of plate sensors 106 that detect the block110. In some examples, the placement tracker 214 can determine a shapeof the 110, a location of an estimated center of the block 110, anorientation of the block 110, or any combination of these, using theplate sensor data 236. The placement tracker 214 can determine theshape, location, and orientation of the block 110 based on the number ofplate sensors 106 that detect the block, the array addresses of theplate sensors 106 that detect the block, or both.

In an example scenario, using the break beam sensor data 234 and theplate sensor data 236, the controller 210 can track motion of a user'shand 140 moving through the workspace 108 to place the block 110 at aparticular location on the plate 104. The controller 210 can determine atime duration of movement of the hand 140 within the workspace 108, aspeed of the hand 140 moving through the workspace 108, a path that thehand 140 travels through the workspace 108, and a coordinate address ofthe particular location on the plate 104.

In some examples, the build plate system 100 includes a camera 206. Thecamera 206 can capture images of the workspace 108. The camera 206 canbe activated when the user (or user's parents/guardians) consent tohaving the camera capture user interaction with the build plate system100 and toy pieces.

The controller 210 can use camera image data 238 captured by the camera206 to track movement and placement of objects within the workspace 108.In some examples, the controller 210 can overlay camera image data 238captured by the camera 206 with break beam sensor data 234 from thebreak beam sensors 204, with plate sensor data 236 from the platesensors 106, or both. Camera image data 238 captured by the camera 206can be used to verify and/or validate trajectories and placement ofobjects determined by the controller 210.

The build plate system 100 includes a memory 220. In some examples, thememory 220 can store calibration data. Calibration data can include dataassociating break beam sensor data with location and movement patternsof objects within the workspace 108. Calibration data can include dataassociating plate sensor data 236 with locations, shapes, and sizes ofobjects placed on the plate 104.

In some examples, the memory 220 can store a building plan 202. In someexamples, the building plan 202 can be loaded into the memory 220. Thebuilding plan 202 can include a plan for a construction to be built onthe plate 104. The building plan 202 can include an arrangement ofblocks. The arrangement can include a number of blocks to be placed onthe plate 104, a location for each block on the plate 104, a type ofblock to be placed at each location, an orientation for each block onthe plate 104, a number of blocks to be placed at each location of theplate 104, or any combination of these.

In some examples, the building plan 202 includes a sequence of actionsto be performed by the user within the workspace 108. In some examples,the building plan 202 includes a sequence of block movement within theworkspace 108. In some examples, the building plan 202 includes asequence of block placement on the plate 104. The building plan 202 caninclude an expected time duration for building the construction, anexpected time duration for placing each block on the plate 104, anexpected speed of the user's hand 140 through the workspace 108, or anyof these.

The controller 210 can access the building plan 202 and can compareobject movement within the workspace 108, and object placement on theplate 104, to the building plan 202. For example, the controller 210 cancompare a sequence of object movement within the workspace 108 to asequence of object movement specified by the building plan 202. Thecontroller 210 can compare a placement of a block on the plate 104 to aplacement specified by the building plan 202. The controller 210 candetermine whether detected movement and placement of objects satisfiessimilarity criteria for matching the movement and placement of objectsspecified by the building plan 202.

The controller 210 can determine target motion patterns of the block 110using the building plan 202. The controller 210 can then determinewhether motion of an object, e.g., a trajectory of the block 110,satisfies similarity criteria for matching the target motion of theblock 110 specified by the building plan 202. In response to determiningthat the motion of the block 110 satisfies the similarity criteria, thecontroller 210 can determine that motion of the block 110 matches thebuilding plan 202. In response to determining that the motion of theblock 110 does not satisfy the similarity criteria, the controller 210can determine that the motion of the block 110 does not match thebuilding plan 202.

The controller 210 can determine a target placement of the block 110using the building plan 202. The controller 210 can determine whetherplacement of the block 110 on the plate 104 satisfies similaritycriteria for matching the target placement of the block 110 specified bythe building plan 202. Similarity criteria can include, for example, athreshold distance between the placement of the block 110 on the plate104 and the target placement specified by the building plan 202. Inresponse to determining that the placement of the block 110 satisfiesthe similarity criteria, the controller 210 can determine that the block110 placement matches the building plan 202. In response to determiningthat the placement of the block 110 does not satisfy the similaritycriteria, the controller 210 can determine that the placement of theblock 110 does not match the building plan 202.

In some examples, the controller 210 can perform actions based on thetracked object motion. For example, the controller 210 may determinethat the motion and/or placement of the block 110 is inaccurate based ondetermining that the motion and/or placement does not satisfy criteriafor matching the building plan 202. In response to determining that themotion and/or placement of the block 110 does not match the buildingplan 202, the controller 210 can determine that the user requiresassistance and can determine to perform an action to provide feedbackand/or assistance to the user. In some examples, the controller 210 candetermine that the user requires assistance based on determining that aplacement of the block 110 differs from a target placement of the block110, based on the user's hand 140 moving at a speed that is slow than atarget speed within the workspace, based on the user's hand being withinthe workspace for longer than an expected time duration, based on theuser moving a block repeatedly between multiple locations of the surface112, and/or based on other detected object or user movements.

To guide and assist the user, the controller 210 can perform one or moreactions. An example action includes providing feedback to the user byactivating a signal device 224. The signal device 224 can include, forexample, a visual alarm, a light, an audible alarm, a speaker, a laserpointer, or any combination of these. In some examples, the controller210 can activate the signal device 224 by activating a visible signalsuch as a light or laser pointer that illuminates a location of theplate 104 where the block 110 should be placed, e.g., in accordance withthe building plan 202. In some examples, the controller 210 can activatethe signal device 224 by illuminating a light of a particular color. Forexample, a red light can indicate that the block 110 has been placedincorrectly or is on the wrong path, and a green light can indicate thatthe block 110 has been placed correctly or is on the correct path.

In some examples, the controller 210 can activate the signal device 224by broadcasting audible sound through a speaker. The sound can include,for example, an alert sound indicating that the block 110 has beenplaced in correctly. In some examples, the sound can include verbalinstructions. In some examples, the controller 210 can activate thesignal device 224 by displaying visual instructions on a display coupledto the build plate system 100. The visual instructions can include, forexample, textual or graphical instructions. The instructions can specifyone or more actions to be performed by the user in order to place theblock 110 correctly per the building plan 202.

The controller 210 can operate the build plate system 100 in differentoperating modes, e.g. an easy mode, a medium mode, a hard mode. Thecontroller 210 can be configured to provide different levels of feedbackand/or assistance in the different operating modes. For example, in theeasy mode, the controller 210 can provide more assistance to the userthan in the medium and hard modes. In the medium mode, the controller210 can provide more assistance to the user than in the hard mode, butless assistance than in the easy mode. For example, in the easy mode,the controller 210 can provide more assistance by providing assistancemore quickly after determining that the user needs assistance, byproviding more specific assistance, or both.

In an example scenario, the controller 210 may determine that the userplaced the block 110 at an incorrect or inaccurate location of thesurface 112. In the easy mode, the controller 210 can perform an actionto assist the user, e.g., by illuminating a light under the correctlocation of the surface 112 after a one second delay. In the mediummode, the controller 210 can perform an action by illuminating a lightsupported by one of the structures 102 after a three second delay. Thelight can indicate the incorrect location of the block 110 withoutrevealing the correct location. In the hard mode, the controller 210 canperform an action by illuminating the light after a ten second delay.

The build plate system 100 can operate in the different operating modes,e.g., based on the building plan 202, based on user input, or both. Forexample, the build plate system 100 can provide a user interface forreceiving user input indicating the operating mode. In some examples,the build plate system 100 can receive user input, through a userinterface, specifying various settings of operation. For example, thebuild plate system can receive user input specifying a setting for apreferred type of signal device 224 to be used for providing userfeedback and assistance. The setting for the preferred type of signaldevice 224 can indicate, for example, a user preference for visualguidance over audible guidance.

The build plate system 100 can include a visualization generator 222. Insome examples, the visualization generator 222 can generate avisualization of object paths and placement within the workspace. Thevisualization can include, for example, a heat map showing the path ofthe block 110 through the workspace 108 and the placement location ofthe block 110 on the surface 112 during a user session. Thevisualization can be presented on a display device. In some examples,the visualization can be presented in near-real time, can be stored forlater viewing by a user, or both. In some examples, the visualizationgenerator 222 can generate an aggregated visualization of objects pathsand placement within the workspace. The aggregated visualization canrepresent multiple user sessions by a same user, or multiple usersessions by multiple users.

The memory 220 can store data generated from user sessions. For example,the memory 220 can store, for a user session, break beam sensor data234, plate sensor data 236, camera image data 238, or any of these. Insome examples, the memory 220 can store data indicating object movementpaths determined by the movement tracker 212, and object placementdetermined by the placement tracker 214.

FIGS. 3A and 3B illustrate tracking of an object by the exampleinteractive build plate system 100. Referring to FIG. 3A, the user'shand 140 holds the block 110 and moves the block 110 through theworkspace 108. The build plate system 100 can track movement of the hand140 and the block 110 using the break beam sensors. For example, thebuild plate system 100 can determine a time of interruption of the beam302 between the emitter 120 and the receiver 122. In some examples, thebuild plate system 100 can determine a three-dimensional coordinatelocation of the block 110 within the workspace 108 at a particular timebased on the array addresses of break beam sensors that detected theblock at the particular time. In some examples, the build plate system100 can determine a size of the block 110, an orientation of the block110, a shape of the block 110, a speed of movement of the block 110, adirection of movement of the block 110, or any combination of thesebased on break beam sensor data generated by the break beam sensorswhile the block 110 is in the workspace 108.

Referring to FIG. 3B, the block 110 is placed on the surface 112 of theplate 104. The build plate system 100 can determine the location andorientation of the block 110 based on plate sensor data 236 generated bythe plate sensors 106. In some examples, the build plate system 100 candetermine a size, shape, and weight of the block 110 based on the platesensor data 236.

FIGS. 4A and 4B illustrate tracking of multiple objects by the exampleinteractive build plate system 100. Referring to FIG. 4A, blocks 110,410 are placed side-by-side on the plate 104. Plate sensor data 236generated can indicate array addresses of the plate sensors 106 thatdetect the presence of the blocks 110, 410.

The build plate system 100 can determine, based on the plate sensor data236, a number of objects resting on the plate 104, a size of eachobject, a weight of each object, an orientation of each object, a shapeof each object, or any combination of these. The build plate system 100can determine, based on the plate sensor data 236, that two blocks areresting on the plate 104.

The build plate system 100 can determine an accuracy of block placementby comparing the placement of the blocks 110, 410 to target placement ofthe blocks 110, 410, e.g., as specified by the building plan 202. Basedon determining that the placement of the blocks 110, 410, does notsatisfy similarity criteria for matching the target placement of theblocks 110, 410, the build plate system 100 can perform an action toprovide feedback and assist the user in correct placement of the blocks110, 410.

The build plate system 100 can track individual objects moving betweenthe workspace 108 and the surface 112. For example, a user may place theblock 110 in a first location on the surface 112, place the block 410 ina second location on the surface 112, remove the block 110 from thefirst location, and place the block 110 in a third location. When aparticular block transitions between the workspace 108 to the surface112, the build plate system 100 can compare the break beam sensor data234 with the plate sensor data 236 to determine which block, e.g., block110 or 410, is being moved.

In some examples, the build plate system 100 can generate an identifierfor each object that enters the workspace 108. For example, when eachblock 110, 410 enters the workspace 108, the build plate system 100 cangenerate an identifier for each block. The identifier can be stored inthe memory 220 with data indicating the location of the respective blockand associated characteristics of the respective block. The associatedcharacteristics can be determined using the break beam sensor data 234,the plate sensor data 136, the camera image data 138, or any of these.Characteristics can include, for example, a size, shape, weight, and/orcolor of the block. When the build plate system 100 detects movement ofone of the blocks, the build plate system 100 can determine theidentifier of the block that is moving. The build plate system 100 candetermine the identifier of the block that is moving based oncharacteristics of the moving block, based on the starting location ofthe moving block, or both. The build plate system 100 can then trackmovement of the identified block from its starting location to an endinglocation. The build plate system 100 can thus track location andmovement of individual objects by storing identifiers, locations, and/orcharacteristics of each object within the memory 220.

Referring to FIG. 4B, block 420 is stacked on top of block 110 on theplate 104. The build plate system 100 can determine, based on the platesensor data 236, a number of objects placed in a same location, e.g.,due to being stacked. For example, the plate sensor data 236 canindicate a first increase in weight detected by a first plate sensor ata first time. The plate sensor data 236 can indicate a second increasein weight detected by the first plate sensor at a second time after thefirst time. Based on the first increase in weight, followed by thesecond increase in weight, the build plate system 100 can determine thattwo objects are stacked at a location of the plate 104 corresponding tothe first plate sensor.

In some examples, objects can be detected by break beam sensors whileresting on the plate 104. For example, the block 420, stacked on top ofthe block 110, breaks the beam 302. The block 420 is therefore detectedby both the break beam sensors 204 and the plate sensors 106 whilestacked on the block 110. The build plate system 100 can overlay thebreak beam sensor data 234 and the plate sensor data 236 to determine aprecise location and other attributes of the block 420. For example,using the break beam sensor data 234 and the plate sensor data 236, thebuild plate system 100 can determine a three-dimensional coordinatelocation of the block 420, a height of the block 420 when stacked on theblock 110, a shape of the block 420, a size of the block 420, a weightof the block 420, a three-dimensional orientation of the block 420, orany of these. Information about the block 420 determined from both thebreak beam sensor data 234 and the plate sensor data 236 can be moreprecise and accurate than information about the block 420 determinedfrom only the break beam sensor data 234 or only the plate sensor data236.

FIG. 5 is a flow diagram of an example process 500 for tracking objectmovement within a three-dimensional workspace.

The process 500 includes receiving, by a controller, break beam sensordata indicating object detection by at least one break beam sensor of aplurality of break beam sensors (502). The plurality of break beamsensors is configured to detect objects within the workspace. Forexample, the array of break beam sensors 205 can detect and trackobjects moving within the workspace 108.

The process 500 includes receiving, by the controller, plate sensor dataindicating object detection by at least one plate sensor of a pluralityof plate sensors (504). The plurality of plate sensors is configured todetect objects resting on a surface that defines a floor of theworkspace. For example, the plate sensors 106 can detect the block 110resting on the surface 112 that defines the floor of the workspace 108.

The process 500 includes determining, based on the break beam sensordata and the plate sensor data, that an object passed through theworkspace to rest on the surface (506). For example, the controller 210can determine, based on the break beam sensor data 234 and the platesensor data 236, that the block 110 passed through the workspace 108 torest on the surface 112. The controller 210 can determine a trajectoryof the block 110 through the workspace 108, and a location of placementof the block 110 on the surface 112.

FIG. 6 shows an example of a computing device 600 and a mobile computingdevice 650 that can be used to implement the techniques described here.The computing device 600 is intended to represent various forms ofdigital computers, such as laptops, desktops, workstations, personaldigital assistants, servers, blade servers, mainframes, and otherappropriate computers. The mobile computing device 650 is intended torepresent various forms of mobile devices, such as personal digitalassistants, cellular telephones, smart-phones, and other similarcomputing devices. The components shown here, their connections andrelationships, and their functions, are meant to be examples only, andare not meant to be limiting.

The computing device 600 includes a processor 602, a memory 604, astorage device 606, a high-speed interface 608 connecting to the memory604 and multiple high-speed expansion ports 610, and a low-speedinterface 612 connecting to a low-speed expansion port 614 and thestorage device 606. Each of the processor 602, the memory 604, thestorage device 606, the high-speed interface 608, the high-speedexpansion ports 610, and the low-speed interface 612, are interconnectedusing various busses, and may be mounted on a common motherboard or inother manners as appropriate. The processor 602 can process instructionsfor execution within the computing device 600, including instructionsstored in the memory 604 or on the storage device 606 to displaygraphical information for a GUI on an external input/output device, suchas a display 616 coupled to the high-speed interface 608. In otherimplementations, multiple processors and/or multiple buses may be used,as appropriate, along with multiple memories and types of memory. Also,multiple computing devices may be connected, with each device providingportions of the necessary operations (e.g., as a server bank, a group ofblade servers, or a multi-processor system).

The memory 604 stores information within the computing device 600. Insome implementations, the memory 604 is a volatile memory unit or units.In some implementations, the memory 604 is a non-volatile memory unit orunits. The memory 604 may also be another form of computer-readablemedium, such as a magnetic or optical disk.

The storage device 606 is capable of providing mass storage for thecomputing device 600. In some implementations, the storage device 606may be or contain a computer-readable medium, such as a floppy diskdevice, a hard disk device, an optical disk device, or a tape device, aflash memory or other similar solid state memory device, or an array ofdevices, including devices in a storage area network or otherconfigurations. Instructions can be stored in an information carrier.The instructions, when executed by one or more processing devices (forexample, processor 602), perform one or more methods, such as thosedescribed above. The instructions can also be stored by one or morestorage devices such as computer- or machine-readable mediums (forexample, the memory 604, the storage device 606, or memory on theprocessor 602).

The high-speed interface 608 manages bandwidth-intensive operations forthe computing device 600, while the low-speed interface 612 manageslower bandwidth-intensive operations. Such allocation of functions is anexample only. In some implementations, the high-speed interface 608 iscoupled to the memory 604, the display 616 (e.g., through a graphicsprocessor or accelerator), and to the high-speed expansion ports 610,which may accept various expansion cards (not shown). In theimplementation, the low-speed interface 612 is coupled to the storagedevice 606 and the low-speed expansion port 614. The low-speed expansionport 614, which may include various communication ports (e.g., USB,Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or moreinput/output devices, such as a keyboard, a pointing device, a scanner,or a networking device such as a switch or router, e.g., through anetwork adapter.

The computing device 600 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 620, or multiple times in a group of such servers. Inaddition, it may be implemented in a personal computer such as a laptopcomputer 622. It may also be implemented as part of a rack server system624. Alternatively, components from the computing device 600 may becombined with other components in a mobile device (not shown), such as amobile computing device 650. Each of such devices may contain one ormore of the computing device 600 and the mobile computing device 650,and an entire system may be made up of multiple computing devicescommunicating with each other.

The mobile computing device 650 includes a processor 652, a memory 664,an input/output device such as a display 654, a communication interface666, and a transceiver 668, among other components. The mobile computingdevice 650 may also be provided with a storage device, such as amicro-drive or other device, to provide additional storage. Each of theprocessor 652, the memory 664, the display 654, the communicationinterface 666, and the transceiver 668, are interconnected using variousbuses, and several of the components may be mounted on a commonmotherboard or in other manners as appropriate.

The processor 652 can execute instructions within the mobile computingdevice 650, including instructions stored in the memory 664. Theprocessor 652 may be implemented as a chipset of chips that includeseparate and multiple analog and digital processors. The processor 652may provide, for example, for coordination of the other components ofthe mobile computing device 650, such as control of user interfaces,applications run by the mobile computing device 650, and wirelesscommunication by the mobile computing device 650.

The processor 652 may communicate with a user through a controlinterface 658 and a display interface 656 coupled to the display 654.The display 654 may be, for example, a TFT (Thin-Film-Transistor LiquidCrystal Display) display or an OLED (Organic Light Emitting Diode)display, or other appropriate display technology. The display interface656 may comprise appropriate circuitry for driving the display 654 topresent graphical and other information to a user. The control interface658 may receive commands from a user and convert them for submission tothe processor 652. In addition, an external interface 662 may providecommunication with the processor 652, so as to enable near areacommunication of the mobile computing device 650 with other devices. Theexternal interface 662 may provide, for example, for wired communicationin some implementations, or for wireless communication in otherimplementations, and multiple interfaces may also be used.

The memory 664 stores information within the mobile computing device650. The memory 664 can be implemented as one or more of acomputer-readable medium or media, a volatile memory unit or units, or anon-volatile memory unit or units. An expansion memory 674 may also beprovided and connected to the mobile computing device 650 through anexpansion interface 672, which may include, for example, a SIMM (SingleIn Line Memory Module) card interface. The expansion memory 674 mayprovide extra storage space for the mobile computing device 650, or mayalso store applications or other information for the mobile computingdevice 650. Specifically, the expansion memory 674 may includeinstructions to carry out or supplement the processes described above,and may include secure information also. Thus, for example, theexpansion memory 674 may be provided as a security module for the mobilecomputing device 650, and may be programmed with instructions thatpermit secure use of the mobile computing device 650. In addition,secure applications may be provided via the SIMM cards, along withadditional information, such as placing identifying information on theSIMM card in a non-hackable manner.

The memory may include, for example, flash memory and/or NVRAM memory(non-volatile random access memory), as discussed below. In someimplementations, instructions are stored in an information carrier. Theinstructions, when executed by one or more processing devices (forexample, processor 652), perform one or more methods, such as thosedescribed above. The instructions can also be stored by one or morestorage devices, such as one or more computer- or machine-readablemediums (for example, the memory 664, the expansion memory 674, ormemory on the processor 652). In some implementations, the instructionscan be received in a propagated signal, for example, over thetransceiver 668 or the external interface 662.

The mobile computing device 650 may communicate wirelessly through thecommunication interface 666, which may include digital signal processingcircuitry where necessary. The communication interface 666 may providefor communications under various modes or protocols, such as GSM voicecalls (Global System for Mobile communications), SMS (Short MessageService), EMS (Enhanced Messaging Service), or MMS messaging (MultimediaMessaging Service), CDMA (code division multiple access), TDMA (timedivision multiple access), PDC (Personal Digital Cellular), WCDMA(Wideband Code Division Multiple Access), CDMA2000, or GPRS (GeneralPacket Radio Service), among others. Such communication may occur, forexample, through the transceiver 668 using a radio-frequency. Inaddition, short-range communication may occur, such as using aBluetooth, WiFi, or other such transceiver (not shown). In addition, aGPS (Global Positioning System) receiver module 670 may provideadditional navigation- and location-related wireless data to the mobilecomputing device 650, which may be used as appropriate by applicationsrunning on the mobile computing device 650.

The mobile computing device 650 may also communicate audibly using anaudio codec 660, which may receive spoken information from a user andconvert it to usable digital information. The audio codec 660 maylikewise generate audible sound for a user, such as through a speaker,e.g., in a handset of the mobile computing device 650. Such sound mayinclude sound from voice telephone calls, may include recorded sound(e.g., voice messages, music files, etc.) and may also include soundgenerated by applications operating on the mobile computing device 650.

The mobile computing device 650 may be implemented in a number ofdifferent forms, as shown in the figure. For example, it may beimplemented as a cellular telephone 680. It may also be implemented aspart of a smart-phone 682, personal digital assistant, or other similarmobile device.

Various implementations of the systems and techniques described here canbe realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms machine-readable medium andcomputer-readable medium refer to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions as a machine-readable signal.The term machine-readable signal refers to any signal used to providemachine instructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniquesdescribed here can be implemented on a computer having a display device(e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor)for displaying information to the user and a keyboard and a pointingdevice (e.g., a mouse or a trackball) by which the user can provideinput to the computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback (e.g., visual feedback,auditory feedback, or tactile feedback); and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in acomputing system that includes a back end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front end component (e.g., a client computerhaving a graphical user interface or a Web browser through which a usercan interact with an implementation of the systems and techniquesdescribed here), or any combination of such back end, middleware, orfront end components. The components of the system can be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (LAN), a wide area network (WAN), and the Internet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

Although a few implementations have been described in detail above,other modifications are possible. For example, while a clientapplication is described as accessing the delegate(s), in otherimplementations the delegate(s) may be employed by other applicationsimplemented by one or more processors, such as an application executingon one or more servers. In addition, the logic flows depicted in thefigures do not require the particular order shown, or sequential order,to achieve desirable results. In addition, other actions may beprovided, or actions may be eliminated, from the described flows, andother components may be added to, or removed from, the describedsystems. Accordingly, other implementations are within the scope of thefollowing claims. What is claimed is:

1. A system comprising: a plate having a surface defining a floor of athree-dimensional workspace, wherein the plate includes toy piececoupling elements and is configured to be used with releasablycoupleable toy pieces; a plurality of plate sensors configured to detectobjects resting on the surface of the plate; a plurality of break beamsensors configured to detect objects within the workspace; and acontroller configured to perform operations comprising: receiving breakbeam sensor data indicating object detection by at least one break beamsensor of the plurality of break beam sensors, receiving plate sensordata indicating object detection by at least one plate sensor of theplurality of plate sensors; and determining, based on the break beamsensor data and the plate sensor data, that a toy piece passed throughthe workspace to rest on the surface.
 2. The system of claim 1,comprising a plurality of support structures, each support structureextending from an edge of the plate in a non-parallel direction to aplane of the surface, wherein: each break beam sensor comprises: anemitter configured to emit electromagnetic radiation; and a receiverconfigured to receive electromagnetic radiation emitted by the emitter,and emitters and receivers of the plurality of break beam sensors aresupported by the plurality of support structures.
 3. The system of claim1, wherein each break beam sensor of the plurality of break beam sensorscomprises: an emitter supported by a first support structure coupled tothe plate; and a receiver supported by a second support structurecoupled to the plate, wherein electromagnetic energy traveling from theemitter to the receiver passes through the workspace.
 4. The system ofclaim 1, wherein the plurality of break beam sensors are arranged in anarray, the break beam sensor data comprising data indicating an arrayaddress of the at least one break beam sensor.
 5. The system of claim 4,wherein receiving break beam sensor data indicating object detection byat least one break beam sensor of the plurality of break beam sensorscomprises: receiving break beam sensor data indicating simultaneousobject detection by two or more break beam sensors at a first time, thebreak beam sensor data comprising data indicating an array address ofthe two or more break beam sensors; and based on the break beam sensordata, determining a three-dimensional coordinate location of the toypiece within the three-dimensional workspace at the first time.
 6. Thesystem of claim 1, wherein the break beam sensor data comprises dataindicating a time of object detection.
 7. The system of claim 1, whereinthe break beam sensor data includes data indicating a sequence ofdetections, the operations comprising determining, based on the breakbeam sensor data, a path traveled through the workspace by the toypiece.
 8. The system of claim 1, wherein each plate sensor of theplurality of plate sensors is configured to detect objects resting onthe surface within a respective proper subset of an area of the surface,the operations comprising: determining, based on the plate sensor data,a location of the toy piece on the surface, the location comprising aparticular proper subset of the area of the surface.
 9. The system ofclaim 1, the operations comprising: comparing a position of the toypiece on the surface to a target position of the toy piece on thesurface; and in response to determining that the position of the toypiece does not satisfy similarity criteria for matching the targetposition, performing one or more actions.
 10. The system of claim 9,wherein the one or more actions comprise at least one of: activating avisual alarm; activating an audible alarm; outputting visualinstructions; or outputting audible instructions.
 11. The system ofclaim 1, wherein the plurality of plate sensors are integrated with theplate and arranged in an array.
 12. The system of claim 1, theoperations comprising determining, using the break beam sensor data andthe plate sensor data, at least one of a size of the toy piece or ashape of the toy piece.
 13. The system of claim 1, the operationscomprising: generating a visualization showing: a path of the toy piecethrough the workspace; and a placement of the toy piece on the surface;and providing the visualization for presentation on a display.
 14. Thesystem of claim 1, wherein the plurality of break beam sensors comprisea plurality of infrared break beam sensors.
 15. The system of claim 1,wherein the plurality of plate sensors comprises a plurality of weightsensors, proximity sensors, or contact sensors.
 16. Acomputer-implemented method for tracking object movement within athree-dimensional workspace, the method comprising: receiving, by acontroller, break beam sensor data indicating object detection by atleast one break beam sensor of a plurality of break beam sensors,wherein the plurality of break beam sensors is configured to detectobjects within the workspace; receiving, by the controller, plate sensordata indicating object detection by at least one plate sensor of aplurality of plate sensors, wherein the plurality of plate sensors isconfigured to detect objects resting on a surface of a plate thatdefines a floor of the workspace; determining, by the controller andbased on the break beam sensor data and the plate sensor data, that anobject passed through the workspace to rest at a position on thesurface; comparing, by the controller, the position of the object on thesurface to a target position of the object on the surface; and inresponse to determining that the position of the object does not satisfysimilarity criteria for matching the target position, performing, by thecontroller, one or more actions.
 17. The method of claim 16, wherein theone or more actions comprise at least one of: activating a visual alarm;activating an audible alarm; outputting visual instructions; oroutputting audible instructions.
 18. The method of claim 16, comprising:obtaining data indicating a plan for a construction to be built on theplate; and determining the target position of the object on the surfaceusing the obtained data.
 19. The method of claim 16, wherein the plateincludes toy piece coupling elements and is configured to be used withreleasably coupleable toy pieces.
 20. A non-transitory computer storagemedium storing instructions that, when executed by one or moreprocessors, cause the one or more processors to perform operations fortracking object movement within a three-dimensional workspace, theoperations comprising: receiving, by a controller, break beam sensordata indicating object detection by at least one break beam sensor of aplurality of break beam sensors, wherein the plurality of break beamsensors is configured to detect objects within the workspace; receiving,by the controller, plate sensor data indicating object detection by atleast one plate sensor of a plurality of plate sensors, wherein theplurality of plate sensors is configured to detect objects resting on asurface of a plate that defines a floor of the workspace; determining,by the controller and based on the break beam sensor data and the platesensor data, that an object passed through the workspace to rest at aposition on the surface; comparing, by the controller, the position ofthe object on the surface to a target position of the object on thesurface; and in response to determining that the position of the objectdoes not satisfy similarity criteria for matching the target position,performing, by the controller, one or more actions.